<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    //基本使用
    // {
    //     let arr = [1,2,3];
    //     let [a,b,c]= arr;
    //     console.log(a,b,c);// 1 2 3
    // }

    {
        // 忽略元素
        // let arr = [1,2,3,4,5,6];
        // let [a,,,,m,f]  = arr;
        // console.log(a,m,f);// 1 5 6
    }
    {
        // 赋值上下文 :对之前定义的变量进行修改（重置）操作。
        // 数组解构也可用于赋值上下文
        // let a = 1;
        // let b = 2;
        // let c = 3;
        // [a,b,c] = [100,200,300];
        // console.log(a,b,c);// 100 200 300
    }
    {
        // 变量交换
        // let a = 1;
        // let b = 2;
        // [b,a]= [a,b];// [b,a] = [1,2]
        // console.log(a,b);// 2 1
    }
    {
        // 默认值
        // // const [a,b,c,d,e] = [1,2,3,4];
        // // console.log(e);// undefined
        //
        // const [a,b,c,d,e=50] = [1,2,3,4];
        // console.log(e);// 50
    }
    {
        // 嵌套数组解构
        // const [a,b,c,d] = [1,2,3,[4,5,6,[9,10]]];
        // console.log(a,b,c,d);// 1 2 3 [4,5,6,[9,10]]

        // const [a,b,c,[d,e,f,[my,num]]] = [1,2,3,[4,5,6,[9,10]]];
        // console.log(a,b,c,d,e,f,my,num);// 1 2 3 4,5,6,9,10
    }
    {
        // 不定元素
        // let [a,b,...m] = [1,2,3,4,5];
        // console.log(a,b,m);// 1 2 [3,4,5]
    }
    {
        // 数组复制
        let arr = [1,2,3];
        // let arr2 = arr;
        // console.log(arr === arr2);// true
        // arr2[0] = 100;// [100,2,3]
        // console.log(arr);// [100,2,3]

        // es5
        // let arr3 = arr.concat();// 复习
        // console.log(arr3=== arr);// false
        // arr3[0]= 90;
        // console.log(arr,arr3)

        // es6
        let [...arr4] = arr;
        console.log(arr4 === arr)
    }
</script>
</html>